package com.net.oil.main.contract;
/*
 * Created by lch on 2018/2/20 0020.
 */

import com.net.oil.base.IBaseModel;
import com.net.oil.main.bean.AppVersionInfo;
import com.net.oil.main.bean.InitCoupon;
import com.net.oil.main.bean.NewAccountCoupon;

import java.util.List;

public interface MainContract {
    interface Model extends IBaseModel {

        /**
         * 上传极光推送id
         *
         * @param deviceId   id
         * @param deviceType 设备类型ID（1：安卓 2：IOS）
         */
        void postJPushId(String deviceId, int deviceType);

        /**
         * 获取新用户注册赠送的优惠券列表
         */
        void searchNewAccountCoupon();

        /**
         * 获取用户是否有未领取的优惠券
         */
        void initCoupon();

        /**
         * 获取服务器端版本号
         */
        void getVersion();
    }

    interface View {

        /**
         * 上传极光推送id成功
         */
        void postJPushIdSuccess();

        /**
         * 上传极光推送id失败
         */
        void postJPushIdFailed();

        /**
         * 获取新用户注册赠送的优惠券成功
         *
         * @param newAccountCoupons 优惠券列表
         */
        void searchNewAccountCouponSuccess(List<NewAccountCoupon> newAccountCoupons);

        /**
         * 获取新用户注册赠送优惠券失败
         */
        void searchNewAccountCouponFailed();

        /**
         * 获取用户是否有未领取的优惠券成功
         *
         * @param initCoupon
         */
        void initCouponSuccess(InitCoupon initCoupon);

        /**
         * 获取用户是否有未领取的优惠券失败
         */
        void initCouponFailed();

        /**
         * 获取服务器端版本成功
         *
         * @param appVersionInfo 服务端版本信息
         */
        void getVersionSuccess(AppVersionInfo appVersionInfo);

        /**
         * 获取服务器端版本失败
         */
        void getVersionFailed();
    }

    interface Presenter {

        /**
         * 上传极光推送id
         *
         * @param deviceId   id
         * @param deviceType 设备类型ID（1：安卓 2：IOS）
         */
        void postJPushId(String deviceId, int deviceType);

        /**
         * 上传极光推送id成功
         */
        void postJPushIdSuccess();

        /**
         * 上传极光推送id失败
         */
        void postJPushIdFailed();

        /**
         * 获取新用户注册赠送的优惠券列表
         */
        void searchNewAccountCoupon();

        /**
         * 获取新用户注册赠送的优惠券成功
         *
         * @param newAccountCoupons 优惠券列表
         */
        void searchNewAccountCouponSuccess(List<NewAccountCoupon> newAccountCoupons);

        /**
         * 获取新用户注册赠送优惠券失败
         */
        void searchNewAccountCouponFailed();

        /**
         * 获取用户是否有未领取的优惠券
         */
        void initCoupon();

        /**
         * 获取用户是否有未领取的优惠券成功
         *
         * @param initCoupon
         */
        void initCouponSuccess(InitCoupon initCoupon);

        /**
         * 获取用户是否有未领取的优惠券失败
         */
        void initCouponFailed();

        /**
         * 获取服务器端版本号
         */
        void getVersion();

        /**
         * 获取服务器端版本成功
         *
         * @param appVersionInfo 服务端版本信息
         */
        void getVersionSuccess(AppVersionInfo appVersionInfo);

        /**
         * 获取服务器端版本失败
         */
        void getVersionFailed();
    }
}
